﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RRHH.RRHH_Service;
using System.Threading;

namespace RRHH.Controllers
{
    public class MaestroPersonalEFController : Controller
    {
        private RRHH.RRHH_Service.RRHHServiceClient serviceRRHH = new RRHH.RRHH_Service.RRHHServiceClient();


        // GET: /PersonalEF/
        public ActionResult ListadoMaestroPersonal(int id)
        {
            List<BEMaestroPersonal> listaMaestroPersonal = new List<BEMaestroPersonal>();
            listaMaestroPersonal = serviceRRHH.ListarMaestroPersonalXIDPersonal(id).ToList();
            return View("listadoMaestroPersonalForm", listaMaestroPersonal);
        }


        // GET: /PersonalEF/Create int idPersonal, string codigoEmpleado
        public ActionResult Edit(int idPersonal, string codigoEmpleado)
        {
            using (RRHH_Service.RRHHServiceClient wsRRHH = new RRHHServiceClient())
            {

                BEMaestroPersonal _BEMaestroPersonal = new BEMaestroPersonal();
                _BEMaestroPersonal.idPersonal = new BEPersonal();
                _BEMaestroPersonal = serviceRRHH.BuscarMaestroPersonalXID(idPersonal, codigoEmpleado);
                _BEMaestroPersonal.CODIGOPERSONA = _BEMaestroPersonal.idPersonal.IDPERSONAL;




                return View("Edit", _BEMaestroPersonal);
            }
        }

        // GET: /PersonalEF/Create
        public ActionResult Create(int id)
        {
            using (RRHH_Service.RRHHServiceClient wsRRHH = new RRHHServiceClient())
            {
                BEMaestroPersonal _BEMaestroPersonal = new BEMaestroPersonal();
                _BEMaestroPersonal.CODIGOPERSONA = id;

                ViewData["ddlClasePlanilla"] = new SelectList(wsRRHH.ListarClasePlanilla().ToList(), "CODIGOCLASEPLANILLA", "DESCRIPCION");

                ViewData["ddlEmpresa"] = new SelectList(wsRRHH.ListarEmpresa().ToList(), "IDAUTO", "NOMBREEMPRESA");

                ViewData["ddlBanco"] = new SelectList(wsRRHH.ListarBanco().ToList(), "IDAUTO", "DESCRIPCION");
                BECatalogo _BECatalogo = new BECatalogo();
                _BECatalogo.idDominio = 11;
                ViewData["ddlTipoCuenta"] = new SelectList(wsRRHH.ListarCatalogo(_BECatalogo).ToList(), "IDAUTO", "NOMBRE");
                ViewData["ddlEps"] = new SelectList(wsRRHH.ListarEPS().ToList(), "IDAUTO", "DESCRIPCION");
                ViewData["ddlCentroCosto"] = new SelectList(wsRRHH.ListarCentroCosto().ToList(), "IDCENTROCOSTO", "DESCRIPCION");
                ViewData["ddlCategoria"] = new SelectList(wsRRHH.ListarCategoriaEmpleado().ToList(), "IDAUTO", "DESCCATEGORIA");
                ViewData["ddlCargo"] = new SelectList(wsRRHH.ListarCargo().ToList(), "IDAUTO", "DESCRIPCION");

                //ViewData["ddEstCivil"] = new SelectList(wsRRHH.ListarEstadosCivil().ToList(), "IDESTADOCIVIL", "DESCRIPCION");
                //ViewData["ddlDepartamento"] = new SelectList(wsRRHH.ListDepartamento().ToList(), "IDDEPARTAMENTO", "DESCRIPCION");

                //ViewData["ddlProvincia"] = new SelectList(new[] { "-Selecciona-" });
                //ViewData["ddlDistrito"] = new SelectList(new[] { "-Selecciona-" });
                //LLenarComboSexo();
                return View("Create", _BEMaestroPersonal);
            }
        }

        [HttpPost]
        public ActionResult Create(BEMaestroPersonal _BEMaestroPersonal, string ddlClasePlanilla, string ddlEmpresa, string ddlBanco,
                                   string ddlTipoCuenta, string ddlEps, string ddlCentroCosto, string ddlCategoria,
                                    string ddlCargo)
        {
            //if (ModelState.IsValid)
            //{
            using (RRHH_Service.RRHHServiceClient wsRRHH = new RRHHServiceClient())
            {
                _BEMaestroPersonal.idPersonal = new BEPersonal();
                _BEMaestroPersonal.idPersonal.IDPERSONAL = _BEMaestroPersonal.CODIGOPERSONA;


                _BEMaestroPersonal.codigoClasePlanilla = new BEClasePlanilla();
                _BEMaestroPersonal.codigoClasePlanilla.codigoClasePlanilla = Convert.ToInt16(ddlClasePlanilla);
                _BEMaestroPersonal.idEmpresa = new BEEmpresa();

                _BEMaestroPersonal.idEmpresa.idAuto = Convert.ToInt16(ddlEmpresa);

                _BEMaestroPersonal.idBanco = new BEBanco();
                _BEMaestroPersonal.idBanco.idAuto = Convert.ToInt16(ddlBanco);

                _BEMaestroPersonal.idTIpoCuenta = new BECatalogo();
                _BEMaestroPersonal.idTIpoCuenta.idAuto = Convert.ToInt16(ddlTipoCuenta);

                _BEMaestroPersonal.idEps = new BEEps();
                _BEMaestroPersonal.idEps.idAuto = Convert.ToInt16(ddlEps);


                _BEMaestroPersonal.codigoCentroCosto = new BECentroCosto();
                _BEMaestroPersonal.codigoCentroCosto.idCentroCosto = Convert.ToInt16(ddlCentroCosto);


                _BEMaestroPersonal.idCategoriaEmpleado = new BECategoriaEmpleado();
                _BEMaestroPersonal.idCategoriaEmpleado.idAuto = Convert.ToInt16(ddlCategoria);

                _BEMaestroPersonal.idCargo = new BECargo();
                _BEMaestroPersonal.idCargo.idAuto = Convert.ToInt16(ddlCargo);

                _BEMaestroPersonal.idArea = new BEArea();
                _BEMaestroPersonal.idArea.idAuto = 301;







                wsRRHH.RegistrarMaestroPersonal(_BEMaestroPersonal);

                return RedirectToAction("Create");
            }
            //}
            //return View("Create");
        }


        // POST: /PersonalEF/Create
        [HttpPost]
        public ActionResult Edit(BEMaestroPersonal _OBEMaestroPersonal, string ddlEmpresa)
        {
            //if (ModelState.IsValid)
            //{
            using (RRHH_Service.RRHHServiceClient wsRRHH = new RRHHServiceClient())
            {



                BEMaestroPersonal _BEMaestroPersonal = new BEMaestroPersonal();

                _BEMaestroPersonal.idPersonal = new BEPersonal();
                _BEMaestroPersonal.idPersonal.IDPERSONAL = _OBEMaestroPersonal.CODIGOPERSONA;
                _BEMaestroPersonal.CODIGOEMPLEADO = _OBEMaestroPersonal.CODIGOEMPLEADO;

                _BEMaestroPersonal.CARGAFAMILIAR = _OBEMaestroPersonal.CARGAFAMILIAR;
                _BEMaestroPersonal.NROCUENTABANCO = _OBEMaestroPersonal.NROCUENTABANCO;
                _BEMaestroPersonal.FECHAINGRESO = _OBEMaestroPersonal.FECHAINGRESO;
                _BEMaestroPersonal.idTIpoCuenta = new BECatalogo();
                _BEMaestroPersonal.idTIpoCuenta.idAuto = _OBEMaestroPersonal.idTIpoCuenta.idAuto;
                _BEMaestroPersonal.idEps = new BEEps();
                _BEMaestroPersonal.idEps.idAuto = _OBEMaestroPersonal.idEps.idAuto;

                _BEMaestroPersonal.codigoCentroCosto = new BECentroCosto();

                _BEMaestroPersonal.codigoCentroCosto.idCentroCosto = _OBEMaestroPersonal.codigoCentroCosto.idCentroCosto;

                _BEMaestroPersonal.idCategoriaEmpleado = new BECategoriaEmpleado();
                _BEMaestroPersonal.idCategoriaEmpleado.idAuto = _OBEMaestroPersonal.idCategoriaEmpleado.idAuto;

                _BEMaestroPersonal.idBanco = new BEBanco();
                _BEMaestroPersonal.idBanco.idAuto = _OBEMaestroPersonal.idBanco.idAuto;

                _BEMaestroPersonal.idArea = new BEArea();
                _BEMaestroPersonal.idArea.idAuto = 301;

                _BEMaestroPersonal.idCargo = new BECargo();
                _BEMaestroPersonal.idCargo.idAuto = _OBEMaestroPersonal.idCargo.idAuto;

                wsRRHH.ModificarMaestroPersonal(_BEMaestroPersonal);

                return View("Edit");
            }
        }

    }
}